package com.adee.java;

import java.util.concurrent.locks.ReentrantLock;

/*
* AQS（AbstractQueuedSynchronizer）
* 1. 抽象队列同步器，是一个java线程同步框架，是jdk中很多锁工具的核心实现框架。
* 2. 在AQS中，维护了一个信号量state和一个线程组成的双向链表队列。其中，这个线程队列就是用来给线程排队的，而state就像一个红绿灯，
*    用来控制线程排队或者放行的。在不同的场景下有不同的意义。
* 3. 在可重入锁这个场景下，state就用来表示加锁的次数，0表示无锁（资源空闲），每加一次锁，state就加1，释放锁，state就减1。
* 
* AQS优势：
* 1. AQS解决了实现同步器的大量细节问题，例如自定义标准同步状态、FIFO同步队列。
* 2. 基于AQS来构建同步器可以带来很多好处。它不仅能够极大减少实现工作，而且也不必处理多个位置上发生的竞争问题。
*
* */
public class Test023_AbstractQueuedSynchronizer {
    public static void main(String[] args) {
        ReentrantLock lock = new ReentrantLock();

    }
}
